package Dominio;


import java.math.BigDecimal;


import srv.*;
import Enums.*;

public class CPR {

	// private List<ODV> odvs;
	private static CPR instancia;
	private srvProveedor provSVR;
	private srvListaPrecios listaPreciosSVR;
	private srvRodamientos rodamientoSVR;

	private CPR() {
		super();

		provSVR = new srvProveedor();
		listaPreciosSVR = new srvListaPrecios();
		rodamientoSVR = new srvRodamientos();
	}

	public void crearProveedor(String cuit, String razonSocial, TipoCategoria tipoCategoria) {
		Proveedor prov = new Proveedor();
		prov.setCUIT(cuit);
		prov.setRazonSocial(razonSocial);
		prov.setTipoCategoria(tipoCategoria);
		provSVR.agregarProveedor(prov);
	}

	
	public void modificarProveedor(String cuit, String razonSocial, TipoCategoria tipoCategoria) {
		Proveedor prov = provSVR.buscarProveedorPorCUIT(cuit);
		prov.setRazonSocial(razonSocial);
		prov.setTipoCategoria(tipoCategoria);
		provSVR.modificarProveedor(prov);
	}

	public void eliminarProveedor(String cuit) {
		Proveedor prov = provSVR.buscarProveedorPorCUIT(cuit);
		provSVR.eliminarProveedor(prov);
	}

	public void crearRodamiento(Rodamiento rodamiento) {
		rodamientoSVR.agregarRodamiento(rodamiento);
	}

	public Rodamiento getMismoRodamiento(Rodamiento r) 
	{
		return rodamientoSVR.getMismoRodamiento(r.getNumeroSerie(), r.getCodigoSKF(),
				r.getMarca().getNombre(),r.getPaisOrigen().getNombre());
	}

	public void modificarRodamiento(Rodamiento rodamiento) {

	}

	public void eliminarRodamiento(int rodamientoId) {

	}

	public void obtenerMejoresPrecios(String[] marca, String[] caracteristicas,
			String[] paises, String[] codigos) {

	}

	/*
	 * public ItemProveedorDto obtenerDetalleItem(Object ItemListaPrecios item)
	 * {
	 * 
	 * }
	 */

	public void registrarListaPreciosProveedor(ListaDePrecio lista) {

	}



	public static CPR getCPR() {
		if (instancia == null) {
			instancia = new CPR();
		}
		return instancia;
	}

	public Proveedor loadProveedor(Proveedor prov) {
		return provSVR.loadProveedor(prov);
	}

	public Proveedor buscarProveedor(String cuit) {
		return provSVR.buscarProveedorPorCUIT(cuit);
	}



	public void persistirItemListaPrecios(int idRodamiento, int stock,
			BigDecimal precio, int idLista) {
		Rodamiento rodamiento = rodamientoSVR.getRodamiento(idRodamiento);
		ListaDePrecio lista = listaPreciosSVR.getListaPrecios(idLista);

		ItemListaDePrecio itemLista = new ItemListaDePrecio();
		itemLista.setRodamiento(rodamiento);

		listaPreciosSVR.agregarItemListaPrecios(lista, itemLista);
	}




}
